home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / glass / glass.lha / GLASS / dtm / test7.gl < prev    next >
Text File  |  1991-06-18  |  1KB  |  39 lines

  1. Basetype E;
  2.  
  3. Atom
  4.    and5 :- E^5 => E,
  5.    and4 :- E^4 => E,
  6.    and3 :- E^3 => E,
  7.    and2 :- E & E => E,
  8.    not :- E => E,
  9.    nand :- E & E => E,
  10.    nand3 :- E & E & E => E,
  11.    ornot :- E & E => E,
  12.    or :- E & E => E,
  13.    jkff :- E & E & E => E,
  14.    buf :- E => E;
  15.  
  16. Def
  17.    counter :- E^9 => E^5;
  18.    counter [ck,d3,d2,d1,d0,nload,nclear,enap,enat] = [carry,q3,q2,q1,q0]
  19.       where
  20.          carry = and5 [q3,q2,q1,q0,enat];
  21.          q3 = counterstage [d3, preset, and4 [q2,q1,q0, en], nclr, nck];
  22.          q2 = counterstage [d2, preset, and3 [q1,q0,en], nclr, nck];
  23.          q1 = counterstage [d1, preset, and2 [q0,en], nclr, nck];
  24.          q0 = counterstage [d0, preset, en, nclr, nck];
  25.          preset = ornot [nload, nclr];
  26.          nclr = buf nclear;
  27.          en = and2 [enap,enat];
  28.      nck = not ck;
  29.          Mac
  30.             counterstage :- E^5 => E;
  31.             counterstage [d, preset, toggle, nclr, nck] =
  32.                jkff [nck, and2 [ja, ea], and2 [ka, ea]]
  33.                where
  34.                   ja = nand [ka, preset];
  35.                   ka = nand3 [d, preset, nclr];
  36.                   ea = or [toggle, preset]
  37.                endwhere;
  38.       endwhere;
  39.